﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using BusinessObjects;
using BusinessObjects.BO_GetObjects;
using LibraryO2S;

public partial class controls_admin_ViewTrash : Pages_Base
{
    private DataTable objDT;
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            base.OpenConnection();
            base.removeHGC(divMessage);
            if (!IsPostBack)
            {
                if (Request["c_id"] != null)
                    ddlCategory.SelectedValue = Request["c_id"].ToString();
                btnRestore.Attributes.Add("onClick", "javascript:return confirm('Nếu bạn chọn OK thì đối tượng sẽ được đưa về vị trí cũ!');");
                btnDeleteAll.Attributes.Add("onClick", "javascript:return confirm('Cảnh Báo: Không nên dùng chức năng này nếu không thực sự cần thiết. Nếu bạn chọn OK thì tất cả bản ghi được chọn sẽ bị xóa vĩnh viễn khỏi hệ thống!');");
                loadData();
            }
        }
        catch { }
        finally { base.CloseConnection(); }
    }
    protected void btnRestore_Click(object sender, EventArgs e)
    {
        try
        {
            base.OpenConnection();
            foreach (RepeaterItem item in rptData.Items)
            {
                CheckBox cboSelect = item.FindControl("cboSelect") as CheckBox;
                if (cboSelect.Checked)
                {
                    HiddenField hdfCate = (HiddenField)item.FindControl("hdfCate");
                    HiddenField hdfID = (HiddenField)item.FindControl("hdfID");
                    bool flag = false;
                    switch (hdfCate.Value)
                    {
                        case "Module": flag = BO_Module.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        case "Advertise": flag = BO_Ads_Picture.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        case "Category": flag = BO_Categories.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        case "Modules": flag = BO_Sec_Admin_Modules.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        case "Administrators": flag = BO_Sec_Administrators.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        case "Groups": flag = BO_Sec_Group_Admin.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        case "Articles": flag = BO_Articles.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        case "Members": flag = BO_Members.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        case "Products": flag = BO_Products.Restore(Convert.ToInt32(hdfID.Value));
                            break;
                        default:
                            break;
                    }
                    if (flag)
                    {
                        divMessage.InnerHtml = O2S_Message.Success("Thông Báo", "Cập Nhật Thay đổi thành công!");
                    }
                    else
                    {
                        divMessage.InnerHtml = O2S_Message.Error("Lỗi", "Có lỗi xảy ra! thử lại!!");
                    }
                }
            }
            loadData();
        }
        catch (Exception ex)
        {
            //O2S_Security.WriteErrorLog(ex.Message, DateTime.Now, this.Request.Url.AbsolutePath);
            //ltrAlertText.Text = "Không sửa được dữ liệu, vui lòng quay lại sau !";
        }
        finally { base.CloseConnection(); }
    }
    protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
    {
        string url = base.removeRequest();
        if (Request["c_id"] != null)
        {
            int conti = url.LastIndexOf("c_id=");
            string start = url.Substring(0, url.LastIndexOf("&c_id="));
            string end = url.Substring(conti, url.Length - conti);
            conti = end.IndexOf("&");
            if (conti > -1)
                url = start + end.Substring(conti, end.Length - conti);
            else
                url = start;
        }
        Response.Redirect(url + "&c_id=" + ddlCategory.SelectedValue);
    }
    protected void loadData()
    {
        try
        {
            switch (ddlCategory.SelectedValue)
            {
                case "0":
                    objDT = BO_Trash.SelectAll();
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                case "1":
                    objDT = BO_Trash.SelectCategory(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;                  
                case "4":
                    objDT = BO_Trash.SelectMembers(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                case "5":
                    objDT = BO_Trash.SelectProducts(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                case "7":
                    objDT = BO_Trash.SelectArticles(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                case "8":
                    objDT = BO_Trash.SelectModule(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                case "9":
                    objDT = BO_Trash.SelectAdministrator(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                case "10":
                    objDT = BO_Trash.SelectGroup(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                case "11":
                    objDT = BO_Trash.SelectModules(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                case "12":
                    objDT = BO_Trash.SelectAdv(base.Cur_page, base.Page_size, 0);
                    base.bindRepeater(rptData, objDT, divMessage);
                    break;
                default:
                    break;
            }
        }
        catch { }
        finally { base.CloseConnection(); }
    }
    protected void btnDeleteAll_Click(object sender, EventArgs e)
    {
        try
        {
            base.OpenConnection();
            string strMessage = null;
            foreach (RepeaterItem item in rptData.Items)
            {
                CheckBox cboSelect = item.FindControl("cboSelect") as CheckBox;
                if (cboSelect.Checked)
                {
                    bool flag = false;
                    string name = ((Literal)item.FindControl("ltrName")).Text;
                    HiddenField hdfCate = (HiddenField)item.FindControl("hdfCate");
                    int id = Convert.ToInt32(((HiddenField)item.FindControl("hdfID")).Value);
                    switch (hdfCate.Value)
                    {
                        case "Category": try { flag = BO_Trash.DeleteCategory(id); }
                            catch { strMessage += name; }
                            break;
                        case "Modules": try { flag = BO_Trash.DeleteMenu(id); }
                            catch { strMessage += name; }
                            break;
                        case "Administrators": try { flag = BO_Trash.DeleteAdmin(id); }
                            catch { strMessage += name; }
                            break;
                        case "Groups": try { flag = BO_Trash.DeleteGroup(id); }
                            catch { strMessage += name; }
                            break;
                        case "Articles": try { flag = BO_Trash.DeleteArticles(id); }
                            catch { strMessage += name; }
                            break;
                        case "Module": try { flag = BO_Trash.DeleteModule(id); }
                            catch { strMessage += name; }
                            break;
                        case "Advertise": try { flag = BO_Trash.DeleteAdv(id); }
                            catch { strMessage += name; }
                            break;       
                        case "Members": try { flag = BO_Trash.DeleteMembers(id); }
                            catch { strMessage += name; }
                            break;
                        case "Products": try { flag = BO_Trash.DeleteProducts(id); }
                            catch { strMessage += name; }
                            break;                  
                        default:
                            break;
                    }
                }
            }
            if (strMessage != null)
                divMessage.InnerHtml = O2S_Message.Warning("Cảnh Báo", "Những dòng sau chưa được xóa: " + strMessage);
            else
                divMessage.InnerHtml = O2S_Message.Success("Thông Báo", "Đã xóa toàn bộ bản ghi được chọn.");
            loadData();
        }
        catch { }
        finally { base.CloseConnection(); }
    }
    protected void rptData_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Literal ltrCategory = (Literal)e.Item.FindControl("ltrCategory");
        if (ltrCategory != null)
        {
            switch (ltrCategory.Text)
            {
                case "Category":
                    ltrCategory.Text = "Danh mục";
                    break;
                case "Administrators":
                    ltrCategory.Text = "Quản trị viên";
                    break;
                case "Modules":
                    ltrCategory.Text = "Menu";
                    break;
                case "Groups":
                    ltrCategory.Text = "Nhóm quản trị viên";
                    break;
                case "Articles":
                    ltrCategory.Text = "Tin tức";
                    break;
                case "Module":
                    ltrCategory.Text = "Modules";
                    break;
                case "Advertise":
                    ltrCategory.Text = "Quảng cáo";
                    break;            
                case "Members":
                    ltrCategory.Text = "Thành viên";
                    break;
                case "Products":
                    ltrCategory.Text = "Sản phẩm";
                    break;            
                default:
                    ltrCategory.Text = "Chưa phân loại";
                    break;
            }
        }
    }
}
